// 引入express（commonjs语法）
const express = require("express")
const request = require('request');
const bodyParser = require('body-parser')
const cors = require('cors');
const fs = require('fs');
const path = require('path');
const md5 = require('md5-node');


// 创建app服务实例对象
const app = express()
const proxy = require('express-http-proxy');

// 设置静态文件目录（如果需要）
app.use(express.static('pdf'));

// const extractChinese = require('./xlsx-demo/le-translate.js');
const extractChinese1 = require('./xlsx-demo/le-translate.js');
// const generateXlsxFn = require('./xlsx-demo/demo.js');
const readFileFn = require('./xlsx-demo/readFile.js');

// 允许所有跨域请求
// app.use(cors());
// 允许跨域请求
// app.use(cors({
// 	origin: '*', // 'http://127.0.0.2:8081', // 允许的前端地址，可以根据需要设置
// 	methods: ['GET', 'POST', 'PUT', 'DELETE'],
// 	allowedHeaders: ['Content-Type', 'Authorization'],
// 	credentials: true
// }));
app.use(cors({
	origin: 'http://api.fanyi.baidu.com', // 'http://127.0.0.2:8081', // 允许前端访问的源
	methods: ['GET', 'POST', 'OPTIONS'],
	allowedHeaders: ['Content-Type', 'Authorization', 'responseType', 'frontparams'], // 添加 responseType
	// credentials: true,
}));

// 解析 application/x-www-form-urlencoded 类型的请求体
app.use(bodyParser.urlencoded({ extended: false }));

// 解析 application/json 类型的请求体
app.use(bodyParser.json());

//demo后端路由
app.get('/', (req, res) => {
	// 函数体
	// res.send('欢迎使用test-node!')
	fs.readFile(path.join(__dirname, 'index.html'), 'utf8', (err, data) => {
		if (err) {
			res.status(500).send('Internal Server Error');
			return;
		}
		res.send(data);
	});
})

//抽出中文
app.get('/extractChinese', (req, res) => {
	const query = req.query // query.type: 1.pc 2.app
	// debugger
	extractChinese1(query, (res1) => {
		// 函数体
		res.send({
			code: 200,
			data: { ...res1 },
			msg: 'success'
		})
	})
})

// 读取xlsx文件
app.get('/readFileFn', (req, res) => {
	readFileFn()
	// 函数体
	res.send({
		code: 200,
		data: null,
		msg: 'success'
	})
})

// const BAIDI_apiUrl = 'https://fanyi-api.baidu.com/api/trans/vip/translate';
// const BAIDI_appid = "20241218002231212" // APP ID
// const BAIDI_secret = "JpkRUxu42G5coenLP9se" // 密钥

// app.get('/translate1', function (req, res) {
// 	req.query
// 	req.params

// 	// debugger
// 	const q = '欢迎光临'
// 	const salt = Math.random();
// 	const sign = md5(BAIDI_appid + q + salt + BAIDI_secret);
// 	const params = {
// 		q,
// 		from: 'zh',
// 		to: 'en',
// 		salt,
// 		appid: BAIDI_appid,
// 		sign,
// 	};

// 	// debugger
// 	request.get({
// 		url: BAIDI_apiUrl,
// 		params,
// 		proxy: false
// 	}, function (err, resp, body) {
// 		// arguments
// 		// debugger
// 		res.send(body);
// 	});
// });


// //demo后端路由
// app.get('/translate', (req, res1, next) => {
// 	// 添加或修改请求头
// 	req.headers['Authorization'] = 'Bearer your-token-here';
// 	arguments
// 	// debugger
// 	next();
// }, proxy(BAIDI_apiUrl,
// 	// {
// 	// 	forwardPathAsync: function () {
// 	// 		return new Promise(function (resolve, reject) {
// 	// 			arguments
// 	// 			// debugger
// 	// 			// eventually 
// 	// 			resolve()
// 	// 		});
// 	// 	},
// 	// 	intercept: function (rsp, data, req, res, callback) {
// 	// 		// rsp - original response from the target
// 	// 		// data = JSON.parse(data.toString('utf8'));
// 	// 		arguments
// 	// 		debugger
// 	// 		// callback(null, data);
// 	// 		res.send({
// 	// 			code: 200,
// 	// 			data,
// 	// 			msg: 'success'
// 	// 		})
// 	// 	}
// 	// }
// ), (err, resp, body) => {
// 	res.send({
// 		code: 200,
// 		data: body,
// 		msg: 'success'
// 	})
// })

app.post('/getpdf', (req, res) => {
	// console.log('req', req);
	// console.log('req.query', req.query);
	// console.log('req.params', req.params);
	// console.log('req.body', req.body);
	// console.log('req.url', req.url);
	// debugger
	let fileName = req.body.fileName

	const filePath = path.join(__dirname, 'pdf', fileName);

	console.log('filePath', filePath);

	// debugger
	// 读取PDF文件
	fs.readFile(filePath, (err, data) => {
		// debugger
		if (err) {
			res.status(500).send('Error reading the PDF file.');
		} else {

			// 设置Content-Type为PDF
			res.setHeader('Content-Type', 'application/pdf');

			// 设置Content-Disposition，建议使用附件形式，这样浏览器会提示下载
			// 将文件路径中的反斜杠转换为斜杠
			const safeFilePath = filePath.replace(/\\/g, '/');
			// 从文件路径中提取文件名（如果文件名中包含中文，则需要编码）
			const fileName = path.basename(safeFilePath);
			// 使用encodeURIComponent来编码文件名
			const encodedFileName = encodeURIComponent(fileName);
			// 设置Content-Disposition响应头
			res.setHeader('Content-Disposition', `attachment; filename="${encodedFileName}"`);

			res.send(data);	// 发送PDF文件的内容
		}
	});

	// debugger
	// res.download(filePath, (err) => {
	// 	if (err) {
	// 		console.log('Error while downloading file:', err);
	// 		res.status(500).send('Error while downloading the file.');
	// 	}
	// });
});

// 创建端口监听
app.listen(5009, (err) => {
	if (!err) console.log("http://127.0.0.1:5009/ 服务器启动成功!3");

})
